5.(2003年)
有一个文件系统,根目录常驻内存,如图所示。目录文件采用链接结构,假设每个目录下最多允许建立60个文件或目录(统称为下级文件)。又假设每个磁盘块最多可存放10个文件目录项:如果下级文件是目录文件,则上级目录项指向该目录文件的第一块地址;
如果下级文件是普通文件,则上级目录项指向该文件的FCB(文件控制块)地址。假设图中所示的文件目录结构中,文件或子目录按自左向右的次序建立,而符号"…"表示尚有其他文件或子目录未列出。
(1) 假设普通文件采用UNIX的三级索引结构,主索引表放在文件控制块中。
①假设每个物理块能存放128个地址(物理块块号),那么,普通文件的大小最大为多少块?(3分)
②若要读/A/D/G/I/K的第7461块,系统最少启动硬盘几次,最多几次?(6分)
(2) 若普通文件采用顺序结构,若要读/A/D/G/I/K的第285块,最少启动硬盘几次,最多几次?(6分)
(3) 为了打开文件,用户给出文件名后,操作系统应做哪些工作?(6分)
(4) 一般在文件系统中,为了加快文件目录检索速度(减少启动硬盘的次数),可以采用什么方法?(9分)
答案:
(1) ①10+128+1282+1283块
②最少启动硬盘8次,最多启动硬盘23次
(2) 最少启动硬盘6次,最多启动硬盘21次
(3) 打开文件时,用户首先给出文件名,操作系统完成以下工作:
①查找目录,检查文件是否存在,如不存在,则报告错误;
②如该文件存在,检查操作的合法性,例如,若该文件为只读文件,但用户却将"读写方?quot;置为写,则系统不予打开;
③根据文件名在目录文件中找到该文件的文件控制块,把该文件的文件控制块调入内存。
(4).一般在文件系统中,为了加快文件目录检索速度,减少启动硬盘的次数,可以采用两种方法。
①引入"当前目录"。在一个多层次的树形文件目录结构中,如果每次都从根结点开始检索,很不方便,通常各目录文件放在外存,故影响访问速度,尤其是当层次较多时检索要耗费很多时间。为克服这一缺点,引入"当前目录"或称"工作目录"的概念。查找文件时可以从当前目录开始向下检索。这样检索路径缩短,检索速度提高。
②采用"目录项分解?quot;。一个文件控制块一般要占很多空间,这样一个目录文件往往很大。在检索目录时,为了找到所需要的目录项,常常要将存放目录文件的多个物理块逐块读入内存进行查找,这就降低了检索速度。可以利用目录项分解法解决这一问题,即把目录项(文件控制块)分为两部分:名号目录项,包含文件名以及相应的文件内部号;基本目录项,包含了除文件名外文件控制块的其他全部信息。
6.(2004年)
在多道程序系统中,一组进程中的每一个进程均无限期的等待被该组进程中的另一进程所占有、且永远不会释放的资源,这种现象将导致系统处于死锁状态。试述:
(1)产生死锁的原因是什么?(10分)
(2)产生死锁的必要条件是什么?(10分)
(3)如何处理死锁?(10分)
答案:
(1).产生死锁的原因:一是系统提供的资源数量有限,不能满足每个进程的使用(5分);二是多道程序运行时,进程推进顺序不合理(5分).
(2)产生死锁的必要条件是:
1)互斥条件(2.5分)
2)不剥夺条件(不可抢占)(2.5分)
3)部分分配(2.5分)
4)循环等待(2.5分)
(3)死锁的处理:
1)死锁的预防
2)死锁的避免
3)死锁的检测
4)死锁的解除
5)不做任何处理
(以上要点每答对1个给2.5分,答对4个及以上要点最多给10分)